namespace ModelGenerator.RepositoryGenerator.Strategies
{
    public interface IMatchModeStrategy
    {
        string GetMatchMode();
        string GetMethodNameTemplate();
    }

    public class LikeModeStrategy : IMatchModeStrategy
    {
        public string GetMatchMode()
        {
            return "MatchMode.Anywhere";
        }

        public string GetMethodNameTemplate()
        {
            return "FindBy{0}Like";
        }
    }

    public class StartWithModeStrategy : IMatchModeStrategy
    {
        public string GetMatchMode()
        {
            return "MatchMode.Start";
        }

        public string GetMethodNameTemplate()
        {
            return "FindBy{0}StartingWith";
        }
    }

    public class EndWithModeStrategy : IMatchModeStrategy
    {
        public string GetMatchMode()
        {
            return "MatchMode.End";
        }

        public string GetMethodNameTemplate()
        {
            return "FindBy{0}EndingWith";
        }
    }
}